﻿namespace Rosetta.Composition
{
    public abstract class SingleNodeVisitor : ITemplateVisitor
    {
        #region Protected Methods

        protected abstract void Visit(Node node);

        #endregion

        #region Private Methods

        void ITemplateVisitor.Visit(InputterNode node)
        {
            Visit(node);
        }

        void ITemplateVisitor.Visit(ConverterNode node)
        {
            Visit(node);
        }

        void ITemplateVisitor.Visit(OutputterNode node)
        {
            Visit(node);
        }

        #endregion
    }
}